Propagation: A New Operation in a Framework for Abstract Interpretation of Logic Programs
نویسندگان
چکیده
call and success substitutions but also with a current state ASc which describes correctly the part of CS local to the clause in question. In Fig. 1, assuming Bj is to be executed, that means that all clauses on the path between Bj and the root (H *--BI,..., Bz, G ~-AI,..., Ak,...) are adorned with an AS~ but also the clauses which can be involved in solving calls to the left of calls on the path to the root, i.e. clauses in the AND-OR subgraph for BI,..., in the ANDOR subgraph for At, .... All these local abstract states ASi together make up a global state AS. In the new framework we have AS I : Prop(AS) where both AS ~ and AS are global states and Prop is a function which reexecutes all operations affecting AS until a stable state is reached. In particular, if O1,..., O,~, On+l is the sequence of operations leading to CS ~, then their abstract counterparts, say AO1,..., AO,~, AO,~+I, are reexecuted until a stable state is reached. All these operations AO~ are weak operations, without propagation, which by themselves need not to be safe. The point is that when the global propagation ceases, a safe approximation is reached, i.e~ all local states AS~ correctly describe state CS ~ and this for any CS represented by AS. The operations which need to be considered for reexecution are : All operations involved in reexecuting calls to the left of the path from the
منابع مشابه
On Propagation-Based Analysis of Logic Programs
Notions such as \reexecution" and \propagation" have recently attracted attention in dataaow analysis of logic programs. Both techniques promise more accurate dataaow analysis without requiring more complex description domains. Propagation, however , has never been given a formal deenition. It has therefore been diicult to discuss properties such as correctness, precision, and termination of pr...
متن کاملTowards a Framework for the Abstract Interpretation of Logic Programs
A general and intuitively appealing framework is developed for the abstract interpretation of logic programs. An algorithm is given to build an abstract AND/OR tree. The algorithm uses a small set of primitive operations. Conditions for the primitive operations and the abstract domain guaranteeing termination of the algorithm and correctness of the abstract AND/OR tree are proved. The elegance ...
متن کاملMore Precise Yet Efficient Type Inference for Logic Programs
Type analyses of logic programs which aim at inferring the types of the program being analyzed are presented in a unified abstract interpretation-based framework. This covers most classical abstract interpretation-based type analyzers for logic programs, built on either top-down or bottom-up interpretation of the program. In this setting, we discuss the widening operator, arguably a crucial one...
متن کاملA Framework for Abstract Interpretation of Universal Timed Concurrent Constraint Programs
Universal timed concurrent constraint programming (utcc) is a generalization of timed ccp (tcc) aiming at modeling mobile reactive systems. In this paper we formalize a general framework for data flow analyses of utcc programs by abstract interpretation techniques. The abstract semantics we propose is compositional allowing us to reduce the complexity of data flow analyses. Furthermore it is pa...
متن کاملInferring Local ( Non - ) Aliasing and Strings for Memory Safety 1
We propose an original approach for checking memory safety of C pointer programs, by combining deductive verification and abstract interpretation techniques. The approach is modular and contextual, thanks to the use of Hoare-style annotations (preand postconditions), allowing us to verify each C function independently. Deductive verification is used to check these annotations in a sound way. Ab...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1992